// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima).
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

/*!
 * @file estimator_status.cpp
 * This source file contains the definition of the described types in the IDL file.
 *
 * This file was generated by the tool gen.
 */

#ifdef _WIN32
// Remove linker warning LNK4221 on Visual Studio
namespace { char dummy; }
#endif

#include "estimator_status.h"
#include <fastcdr/Cdr.h>

#include <fastcdr/exceptions/BadParamException.h>
using namespace eprosima::fastcdr::exception;

#include <utility>





































estimator_status::estimator_status()
{
    // m_timestamp_ com.eprosima.idl.parser.typecode.PrimitiveTypeCode@4923ab24
    m_timestamp_ = 0;
    // m_states com.eprosima.idl.parser.typecode.AliasTypeCode@44c8afef
    memset(&m_states, 0, (24) * 4);
    // m_n_states_ com.eprosima.idl.parser.typecode.PrimitiveTypeCode@7b69c6ba
    m_n_states_ = 0;
    // m_vibe com.eprosima.idl.parser.typecode.AliasTypeCode@46daef40
    memset(&m_vibe, 0, (3) * 4);
    // m_covariances com.eprosima.idl.parser.typecode.AliasTypeCode@44c8afef
    memset(&m_covariances, 0, (24) * 4);
    // m_output_tracking_error com.eprosima.idl.parser.typecode.AliasTypeCode@46daef40
    memset(&m_output_tracking_error, 0, (3) * 4);
    // m_gps_check_fail_flags_ com.eprosima.idl.parser.typecode.PrimitiveTypeCode@12f41634
    m_gps_check_fail_flags_ = 0;
    // m_control_mode_flags_ com.eprosima.idl.parser.typecode.PrimitiveTypeCode@13c27452
    m_control_mode_flags_ = 0;
    // m_filter_fault_flags_ com.eprosima.idl.parser.typecode.PrimitiveTypeCode@262b2c86
    m_filter_fault_flags_ = 0;
    // m_pos_horiz_accuracy_ com.eprosima.idl.parser.typecode.PrimitiveTypeCode@371a67ec
    m_pos_horiz_accuracy_ = 0.0;
    // m_pos_vert_accuracy_ com.eprosima.idl.parser.typecode.PrimitiveTypeCode@5ed828d
    m_pos_vert_accuracy_ = 0.0;
    // m_innovation_check_flags_ com.eprosima.idl.parser.typecode.PrimitiveTypeCode@50d0686
    m_innovation_check_flags_ = 0;
    // m_mag_test_ratio_ com.eprosima.idl.parser.typecode.PrimitiveTypeCode@7a3d45bd
    m_mag_test_ratio_ = 0.0;
    // m_vel_test_ratio_ com.eprosima.idl.parser.typecode.PrimitiveTypeCode@1e7c7811
    m_vel_test_ratio_ = 0.0;
    // m_pos_test_ratio_ com.eprosima.idl.parser.typecode.PrimitiveTypeCode@77ec78b9
    m_pos_test_ratio_ = 0.0;
    // m_hgt_test_ratio_ com.eprosima.idl.parser.typecode.PrimitiveTypeCode@a38d7a3
    m_hgt_test_ratio_ = 0.0;
    // m_tas_test_ratio_ com.eprosima.idl.parser.typecode.PrimitiveTypeCode@63440df3
    m_tas_test_ratio_ = 0.0;
    // m_hagl_test_ratio_ com.eprosima.idl.parser.typecode.PrimitiveTypeCode@3aeaafa6
    m_hagl_test_ratio_ = 0.0;
    // m_beta_test_ratio_ com.eprosima.idl.parser.typecode.PrimitiveTypeCode@76a3e297
    m_beta_test_ratio_ = 0.0;
    // m_solution_status_flags_ com.eprosima.idl.parser.typecode.PrimitiveTypeCode@4d3167f4
    m_solution_status_flags_ = 0;
    // m_time_slip_ com.eprosima.idl.parser.typecode.PrimitiveTypeCode@87f383f
    m_time_slip_ = 0.0;
    // m_pre_flt_fail_innov_heading_ com.eprosima.idl.parser.typecode.PrimitiveTypeCode@4eb7f003
    m_pre_flt_fail_innov_heading_ = false;
    // m_pre_flt_fail_innov_vel_horiz_ com.eprosima.idl.parser.typecode.PrimitiveTypeCode@eafc191
    m_pre_flt_fail_innov_vel_horiz_ = false;
    // m_pre_flt_fail_innov_vel_vert_ com.eprosima.idl.parser.typecode.PrimitiveTypeCode@612fc6eb
    m_pre_flt_fail_innov_vel_vert_ = false;
    // m_pre_flt_fail_innov_height_ com.eprosima.idl.parser.typecode.PrimitiveTypeCode@1060b431
    m_pre_flt_fail_innov_height_ = false;
    // m_pre_flt_fail_mag_field_disturbed_ com.eprosima.idl.parser.typecode.PrimitiveTypeCode@612679d6
    m_pre_flt_fail_mag_field_disturbed_ = false;
    // m_health_flags_ com.eprosima.idl.parser.typecode.PrimitiveTypeCode@11758f2a
    m_health_flags_ = 0;
    // m_timeout_flags_ com.eprosima.idl.parser.typecode.PrimitiveTypeCode@e720b71
    m_timeout_flags_ = 0;

}

estimator_status::~estimator_status()
{




























}

estimator_status::estimator_status(const estimator_status &x)
{
    m_timestamp_ = x.m_timestamp_;
    m_states = x.m_states;
    m_n_states_ = x.m_n_states_;
    m_vibe = x.m_vibe;
    m_covariances = x.m_covariances;
    m_output_tracking_error = x.m_output_tracking_error;
    m_gps_check_fail_flags_ = x.m_gps_check_fail_flags_;
    m_control_mode_flags_ = x.m_control_mode_flags_;
    m_filter_fault_flags_ = x.m_filter_fault_flags_;
    m_pos_horiz_accuracy_ = x.m_pos_horiz_accuracy_;
    m_pos_vert_accuracy_ = x.m_pos_vert_accuracy_;
    m_innovation_check_flags_ = x.m_innovation_check_flags_;
    m_mag_test_ratio_ = x.m_mag_test_ratio_;
    m_vel_test_ratio_ = x.m_vel_test_ratio_;
    m_pos_test_ratio_ = x.m_pos_test_ratio_;
    m_hgt_test_ratio_ = x.m_hgt_test_ratio_;
    m_tas_test_ratio_ = x.m_tas_test_ratio_;
    m_hagl_test_ratio_ = x.m_hagl_test_ratio_;
    m_beta_test_ratio_ = x.m_beta_test_ratio_;
    m_solution_status_flags_ = x.m_solution_status_flags_;
    m_time_slip_ = x.m_time_slip_;
    m_pre_flt_fail_innov_heading_ = x.m_pre_flt_fail_innov_heading_;
    m_pre_flt_fail_innov_vel_horiz_ = x.m_pre_flt_fail_innov_vel_horiz_;
    m_pre_flt_fail_innov_vel_vert_ = x.m_pre_flt_fail_innov_vel_vert_;
    m_pre_flt_fail_innov_height_ = x.m_pre_flt_fail_innov_height_;
    m_pre_flt_fail_mag_field_disturbed_ = x.m_pre_flt_fail_mag_field_disturbed_;
    m_health_flags_ = x.m_health_flags_;
    m_timeout_flags_ = x.m_timeout_flags_;
}

estimator_status::estimator_status(estimator_status &&x)
{
    m_timestamp_ = x.m_timestamp_;
    m_states = std::move(x.m_states);
    m_n_states_ = x.m_n_states_;
    m_vibe = std::move(x.m_vibe);
    m_covariances = std::move(x.m_covariances);
    m_output_tracking_error = std::move(x.m_output_tracking_error);
    m_gps_check_fail_flags_ = x.m_gps_check_fail_flags_;
    m_control_mode_flags_ = x.m_control_mode_flags_;
    m_filter_fault_flags_ = x.m_filter_fault_flags_;
    m_pos_horiz_accuracy_ = x.m_pos_horiz_accuracy_;
    m_pos_vert_accuracy_ = x.m_pos_vert_accuracy_;
    m_innovation_check_flags_ = x.m_innovation_check_flags_;
    m_mag_test_ratio_ = x.m_mag_test_ratio_;
    m_vel_test_ratio_ = x.m_vel_test_ratio_;
    m_pos_test_ratio_ = x.m_pos_test_ratio_;
    m_hgt_test_ratio_ = x.m_hgt_test_ratio_;
    m_tas_test_ratio_ = x.m_tas_test_ratio_;
    m_hagl_test_ratio_ = x.m_hagl_test_ratio_;
    m_beta_test_ratio_ = x.m_beta_test_ratio_;
    m_solution_status_flags_ = x.m_solution_status_flags_;
    m_time_slip_ = x.m_time_slip_;
    m_pre_flt_fail_innov_heading_ = x.m_pre_flt_fail_innov_heading_;
    m_pre_flt_fail_innov_vel_horiz_ = x.m_pre_flt_fail_innov_vel_horiz_;
    m_pre_flt_fail_innov_vel_vert_ = x.m_pre_flt_fail_innov_vel_vert_;
    m_pre_flt_fail_innov_height_ = x.m_pre_flt_fail_innov_height_;
    m_pre_flt_fail_mag_field_disturbed_ = x.m_pre_flt_fail_mag_field_disturbed_;
    m_health_flags_ = x.m_health_flags_;
    m_timeout_flags_ = x.m_timeout_flags_;
}

estimator_status& estimator_status::operator=(const estimator_status &x)
{

    m_timestamp_ = x.m_timestamp_;
    m_states = x.m_states;
    m_n_states_ = x.m_n_states_;
    m_vibe = x.m_vibe;
    m_covariances = x.m_covariances;
    m_output_tracking_error = x.m_output_tracking_error;
    m_gps_check_fail_flags_ = x.m_gps_check_fail_flags_;
    m_control_mode_flags_ = x.m_control_mode_flags_;
    m_filter_fault_flags_ = x.m_filter_fault_flags_;
    m_pos_horiz_accuracy_ = x.m_pos_horiz_accuracy_;
    m_pos_vert_accuracy_ = x.m_pos_vert_accuracy_;
    m_innovation_check_flags_ = x.m_innovation_check_flags_;
    m_mag_test_ratio_ = x.m_mag_test_ratio_;
    m_vel_test_ratio_ = x.m_vel_test_ratio_;
    m_pos_test_ratio_ = x.m_pos_test_ratio_;
    m_hgt_test_ratio_ = x.m_hgt_test_ratio_;
    m_tas_test_ratio_ = x.m_tas_test_ratio_;
    m_hagl_test_ratio_ = x.m_hagl_test_ratio_;
    m_beta_test_ratio_ = x.m_beta_test_ratio_;
    m_solution_status_flags_ = x.m_solution_status_flags_;
    m_time_slip_ = x.m_time_slip_;
    m_pre_flt_fail_innov_heading_ = x.m_pre_flt_fail_innov_heading_;
    m_pre_flt_fail_innov_vel_horiz_ = x.m_pre_flt_fail_innov_vel_horiz_;
    m_pre_flt_fail_innov_vel_vert_ = x.m_pre_flt_fail_innov_vel_vert_;
    m_pre_flt_fail_innov_height_ = x.m_pre_flt_fail_innov_height_;
    m_pre_flt_fail_mag_field_disturbed_ = x.m_pre_flt_fail_mag_field_disturbed_;
    m_health_flags_ = x.m_health_flags_;
    m_timeout_flags_ = x.m_timeout_flags_;

    return *this;
}

estimator_status& estimator_status::operator=(estimator_status &&x)
{

    m_timestamp_ = x.m_timestamp_;
    m_states = std::move(x.m_states);
    m_n_states_ = x.m_n_states_;
    m_vibe = std::move(x.m_vibe);
    m_covariances = std::move(x.m_covariances);
    m_output_tracking_error = std::move(x.m_output_tracking_error);
    m_gps_check_fail_flags_ = x.m_gps_check_fail_flags_;
    m_control_mode_flags_ = x.m_control_mode_flags_;
    m_filter_fault_flags_ = x.m_filter_fault_flags_;
    m_pos_horiz_accuracy_ = x.m_pos_horiz_accuracy_;
    m_pos_vert_accuracy_ = x.m_pos_vert_accuracy_;
    m_innovation_check_flags_ = x.m_innovation_check_flags_;
    m_mag_test_ratio_ = x.m_mag_test_ratio_;
    m_vel_test_ratio_ = x.m_vel_test_ratio_;
    m_pos_test_ratio_ = x.m_pos_test_ratio_;
    m_hgt_test_ratio_ = x.m_hgt_test_ratio_;
    m_tas_test_ratio_ = x.m_tas_test_ratio_;
    m_hagl_test_ratio_ = x.m_hagl_test_ratio_;
    m_beta_test_ratio_ = x.m_beta_test_ratio_;
    m_solution_status_flags_ = x.m_solution_status_flags_;
    m_time_slip_ = x.m_time_slip_;
    m_pre_flt_fail_innov_heading_ = x.m_pre_flt_fail_innov_heading_;
    m_pre_flt_fail_innov_vel_horiz_ = x.m_pre_flt_fail_innov_vel_horiz_;
    m_pre_flt_fail_innov_vel_vert_ = x.m_pre_flt_fail_innov_vel_vert_;
    m_pre_flt_fail_innov_height_ = x.m_pre_flt_fail_innov_height_;
    m_pre_flt_fail_mag_field_disturbed_ = x.m_pre_flt_fail_mag_field_disturbed_;
    m_health_flags_ = x.m_health_flags_;
    m_timeout_flags_ = x.m_timeout_flags_;

    return *this;
}

size_t estimator_status::getMaxCdrSerializedSize(size_t current_alignment)
{
    size_t initial_alignment = current_alignment;


    current_alignment += 8 + eprosima::fastcdr::Cdr::alignment(current_alignment, 8);


    current_alignment += ((24) * 4) + eprosima::fastcdr::Cdr::alignment(current_alignment, 4);


    current_alignment += 1 + eprosima::fastcdr::Cdr::alignment(current_alignment, 1);


    current_alignment += ((3) * 4) + eprosima::fastcdr::Cdr::alignment(current_alignment, 4);


    current_alignment += ((24) * 4) + eprosima::fastcdr::Cdr::alignment(current_alignment, 4);


    current_alignment += ((3) * 4) + eprosima::fastcdr::Cdr::alignment(current_alignment, 4);


    current_alignment += 2 + eprosima::fastcdr::Cdr::alignment(current_alignment, 2);


    current_alignment += 4 + eprosima::fastcdr::Cdr::alignment(current_alignment, 4);


    current_alignment += 2 + eprosima::fastcdr::Cdr::alignment(current_alignment, 2);


    current_alignment += 4 + eprosima::fastcdr::Cdr::alignment(current_alignment, 4);


    current_alignment += 4 + eprosima::fastcdr::Cdr::alignment(current_alignment, 4);


    current_alignment += 2 + eprosima::fastcdr::Cdr::alignment(current_alignment, 2);


    current_alignment += 4 + eprosima::fastcdr::Cdr::alignment(current_alignment, 4);


    current_alignment += 4 + eprosima::fastcdr::Cdr::alignment(current_alignment, 4);


    current_alignment += 4 + eprosima::fastcdr::Cdr::alignment(current_alignment, 4);


    current_alignment += 4 + eprosima::fastcdr::Cdr::alignment(current_alignment, 4);


    current_alignment += 4 + eprosima::fastcdr::Cdr::alignment(current_alignment, 4);


    current_alignment += 4 + eprosima::fastcdr::Cdr::alignment(current_alignment, 4);


    current_alignment += 4 + eprosima::fastcdr::Cdr::alignment(current_alignment, 4);


    current_alignment += 2 + eprosima::fastcdr::Cdr::alignment(current_alignment, 2);


    current_alignment += 4 + eprosima::fastcdr::Cdr::alignment(current_alignment, 4);


    current_alignment += 1 + eprosima::fastcdr::Cdr::alignment(current_alignment, 1);


    current_alignment += 1 + eprosima::fastcdr::Cdr::alignment(current_alignment, 1);


    current_alignment += 1 + eprosima::fastcdr::Cdr::alignment(current_alignment, 1);


    current_alignment += 1 + eprosima::fastcdr::Cdr::alignment(current_alignment, 1);


    current_alignment += 1 + eprosima::fastcdr::Cdr::alignment(current_alignment, 1);


    current_alignment += 1 + eprosima::fastcdr::Cdr::alignment(current_alignment, 1);


    current_alignment += 1 + eprosima::fastcdr::Cdr::alignment(current_alignment, 1);



    return current_alignment - initial_alignment;
}

size_t estimator_status::getCdrSerializedSize(const estimator_status& data, size_t current_alignment)
{
    (void)data;
    size_t initial_alignment = current_alignment;


    current_alignment += 8 + eprosima::fastcdr::Cdr::alignment(current_alignment, 8);


    if ((24) > 0)
    {
        current_alignment += ((24) * 4) + eprosima::fastcdr::Cdr::alignment(current_alignment, 4);
    }

    current_alignment += 1 + eprosima::fastcdr::Cdr::alignment(current_alignment, 1);


    if ((3) > 0)
    {
        current_alignment += ((3) * 4) + eprosima::fastcdr::Cdr::alignment(current_alignment, 4);
    }

    if ((24) > 0)
    {
        current_alignment += ((24) * 4) + eprosima::fastcdr::Cdr::alignment(current_alignment, 4);
    }

    if ((3) > 0)
    {
        current_alignment += ((3) * 4) + eprosima::fastcdr::Cdr::alignment(current_alignment, 4);
    }

    current_alignment += 2 + eprosima::fastcdr::Cdr::alignment(current_alignment, 2);


    current_alignment += 4 + eprosima::fastcdr::Cdr::alignment(current_alignment, 4);


    current_alignment += 2 + eprosima::fastcdr::Cdr::alignment(current_alignment, 2);


    current_alignment += 4 + eprosima::fastcdr::Cdr::alignment(current_alignment, 4);


    current_alignment += 4 + eprosima::fastcdr::Cdr::alignment(current_alignment, 4);


    current_alignment += 2 + eprosima::fastcdr::Cdr::alignment(current_alignment, 2);


    current_alignment += 4 + eprosima::fastcdr::Cdr::alignment(current_alignment, 4);


    current_alignment += 4 + eprosima::fastcdr::Cdr::alignment(current_alignment, 4);


    current_alignment += 4 + eprosima::fastcdr::Cdr::alignment(current_alignment, 4);


    current_alignment += 4 + eprosima::fastcdr::Cdr::alignment(current_alignment, 4);


    current_alignment += 4 + eprosima::fastcdr::Cdr::alignment(current_alignment, 4);


    current_alignment += 4 + eprosima::fastcdr::Cdr::alignment(current_alignment, 4);


    current_alignment += 4 + eprosima::fastcdr::Cdr::alignment(current_alignment, 4);


    current_alignment += 2 + eprosima::fastcdr::Cdr::alignment(current_alignment, 2);


    current_alignment += 4 + eprosima::fastcdr::Cdr::alignment(current_alignment, 4);


    current_alignment += 1 + eprosima::fastcdr::Cdr::alignment(current_alignment, 1);


    current_alignment += 1 + eprosima::fastcdr::Cdr::alignment(current_alignment, 1);


    current_alignment += 1 + eprosima::fastcdr::Cdr::alignment(current_alignment, 1);


    current_alignment += 1 + eprosima::fastcdr::Cdr::alignment(current_alignment, 1);


    current_alignment += 1 + eprosima::fastcdr::Cdr::alignment(current_alignment, 1);


    current_alignment += 1 + eprosima::fastcdr::Cdr::alignment(current_alignment, 1);


    current_alignment += 1 + eprosima::fastcdr::Cdr::alignment(current_alignment, 1);



    return current_alignment - initial_alignment;
}

void estimator_status::serialize(eprosima::fastcdr::Cdr &scdr) const
{

    scdr << m_timestamp_;
    scdr << m_states;

    scdr << m_n_states_;
    scdr << m_vibe;

    scdr << m_covariances;

    scdr << m_output_tracking_error;

    scdr << m_gps_check_fail_flags_;
    scdr << m_control_mode_flags_;
    scdr << m_filter_fault_flags_;
    scdr << m_pos_horiz_accuracy_;
    scdr << m_pos_vert_accuracy_;
    scdr << m_innovation_check_flags_;
    scdr << m_mag_test_ratio_;
    scdr << m_vel_test_ratio_;
    scdr << m_pos_test_ratio_;
    scdr << m_hgt_test_ratio_;
    scdr << m_tas_test_ratio_;
    scdr << m_hagl_test_ratio_;
    scdr << m_beta_test_ratio_;
    scdr << m_solution_status_flags_;
    scdr << m_time_slip_;
    scdr << m_pre_flt_fail_innov_heading_;
    scdr << m_pre_flt_fail_innov_vel_horiz_;
    scdr << m_pre_flt_fail_innov_vel_vert_;
    scdr << m_pre_flt_fail_innov_height_;
    scdr << m_pre_flt_fail_mag_field_disturbed_;
    scdr << m_health_flags_;
    scdr << m_timeout_flags_;
}

void estimator_status::deserialize(eprosima::fastcdr::Cdr &dcdr)
{

    dcdr >> m_timestamp_;
    dcdr >> m_states;

    dcdr >> m_n_states_;
    dcdr >> m_vibe;

    dcdr >> m_covariances;

    dcdr >> m_output_tracking_error;

    dcdr >> m_gps_check_fail_flags_;
    dcdr >> m_control_mode_flags_;
    dcdr >> m_filter_fault_flags_;
    dcdr >> m_pos_horiz_accuracy_;
    dcdr >> m_pos_vert_accuracy_;
    dcdr >> m_innovation_check_flags_;
    dcdr >> m_mag_test_ratio_;
    dcdr >> m_vel_test_ratio_;
    dcdr >> m_pos_test_ratio_;
    dcdr >> m_hgt_test_ratio_;
    dcdr >> m_tas_test_ratio_;
    dcdr >> m_hagl_test_ratio_;
    dcdr >> m_beta_test_ratio_;
    dcdr >> m_solution_status_flags_;
    dcdr >> m_time_slip_;
    dcdr >> m_pre_flt_fail_innov_heading_;
    dcdr >> m_pre_flt_fail_innov_vel_horiz_;
    dcdr >> m_pre_flt_fail_innov_vel_vert_;
    dcdr >> m_pre_flt_fail_innov_height_;
    dcdr >> m_pre_flt_fail_mag_field_disturbed_;
    dcdr >> m_health_flags_;
    dcdr >> m_timeout_flags_;
}

/*!
 * @brief This function sets a value in member timestamp_
 * @param _timestamp_ New value for member timestamp_
 */
void estimator_status::timestamp_(uint64_t _timestamp_)
{
m_timestamp_ = _timestamp_;
}

/*!
 * @brief This function returns the value of member timestamp_
 * @return Value of member timestamp_
 */
uint64_t estimator_status::timestamp_() const
{
    return m_timestamp_;
}

/*!
 * @brief This function returns a reference to member timestamp_
 * @return Reference to member timestamp_
 */
uint64_t& estimator_status::timestamp_()
{
    return m_timestamp_;
}

/*!
 * @brief This function copies the value in member states
 * @param _states New value to be copied in member states
 */
void estimator_status::states(const estimator_status__float_array_24 &_states)
{
m_states = _states;
}

/*!
 * @brief This function moves the value in member states
 * @param _states New value to be moved in member states
 */
void estimator_status::states(estimator_status__float_array_24 &&_states)
{
m_states = std::move(_states);
}

/*!
 * @brief This function returns a constant reference to member states
 * @return Constant reference to member states
 */
const estimator_status__float_array_24& estimator_status::states() const
{
    return m_states;
}

/*!
 * @brief This function returns a reference to member states
 * @return Reference to member states
 */
estimator_status__float_array_24& estimator_status::states()
{
    return m_states;
}
/*!
 * @brief This function sets a value in member n_states_
 * @param _n_states_ New value for member n_states_
 */
void estimator_status::n_states_(uint8_t _n_states_)
{
m_n_states_ = _n_states_;
}

/*!
 * @brief This function returns the value of member n_states_
 * @return Value of member n_states_
 */
uint8_t estimator_status::n_states_() const
{
    return m_n_states_;
}

/*!
 * @brief This function returns a reference to member n_states_
 * @return Reference to member n_states_
 */
uint8_t& estimator_status::n_states_()
{
    return m_n_states_;
}

/*!
 * @brief This function copies the value in member vibe
 * @param _vibe New value to be copied in member vibe
 */
void estimator_status::vibe(const estimator_status__float_array_3 &_vibe)
{
m_vibe = _vibe;
}

/*!
 * @brief This function moves the value in member vibe
 * @param _vibe New value to be moved in member vibe
 */
void estimator_status::vibe(estimator_status__float_array_3 &&_vibe)
{
m_vibe = std::move(_vibe);
}

/*!
 * @brief This function returns a constant reference to member vibe
 * @return Constant reference to member vibe
 */
const estimator_status__float_array_3& estimator_status::vibe() const
{
    return m_vibe;
}

/*!
 * @brief This function returns a reference to member vibe
 * @return Reference to member vibe
 */
estimator_status__float_array_3& estimator_status::vibe()
{
    return m_vibe;
}
/*!
 * @brief This function copies the value in member covariances
 * @param _covariances New value to be copied in member covariances
 */
void estimator_status::covariances(const estimator_status__float_array_24 &_covariances)
{
m_covariances = _covariances;
}

/*!
 * @brief This function moves the value in member covariances
 * @param _covariances New value to be moved in member covariances
 */
void estimator_status::covariances(estimator_status__float_array_24 &&_covariances)
{
m_covariances = std::move(_covariances);
}

/*!
 * @brief This function returns a constant reference to member covariances
 * @return Constant reference to member covariances
 */
const estimator_status__float_array_24& estimator_status::covariances() const
{
    return m_covariances;
}

/*!
 * @brief This function returns a reference to member covariances
 * @return Reference to member covariances
 */
estimator_status__float_array_24& estimator_status::covariances()
{
    return m_covariances;
}
/*!
 * @brief This function copies the value in member output_tracking_error
 * @param _output_tracking_error New value to be copied in member output_tracking_error
 */
void estimator_status::output_tracking_error(const estimator_status__float_array_3 &_output_tracking_error)
{
m_output_tracking_error = _output_tracking_error;
}

/*!
 * @brief This function moves the value in member output_tracking_error
 * @param _output_tracking_error New value to be moved in member output_tracking_error
 */
void estimator_status::output_tracking_error(estimator_status__float_array_3 &&_output_tracking_error)
{
m_output_tracking_error = std::move(_output_tracking_error);
}

/*!
 * @brief This function returns a constant reference to member output_tracking_error
 * @return Constant reference to member output_tracking_error
 */
const estimator_status__float_array_3& estimator_status::output_tracking_error() const
{
    return m_output_tracking_error;
}

/*!
 * @brief This function returns a reference to member output_tracking_error
 * @return Reference to member output_tracking_error
 */
estimator_status__float_array_3& estimator_status::output_tracking_error()
{
    return m_output_tracking_error;
}
/*!
 * @brief This function sets a value in member gps_check_fail_flags_
 * @param _gps_check_fail_flags_ New value for member gps_check_fail_flags_
 */
void estimator_status::gps_check_fail_flags_(uint16_t _gps_check_fail_flags_)
{
m_gps_check_fail_flags_ = _gps_check_fail_flags_;
}

/*!
 * @brief This function returns the value of member gps_check_fail_flags_
 * @return Value of member gps_check_fail_flags_
 */
uint16_t estimator_status::gps_check_fail_flags_() const
{
    return m_gps_check_fail_flags_;
}

/*!
 * @brief This function returns a reference to member gps_check_fail_flags_
 * @return Reference to member gps_check_fail_flags_
 */
uint16_t& estimator_status::gps_check_fail_flags_()
{
    return m_gps_check_fail_flags_;
}

/*!
 * @brief This function sets a value in member control_mode_flags_
 * @param _control_mode_flags_ New value for member control_mode_flags_
 */
void estimator_status::control_mode_flags_(uint32_t _control_mode_flags_)
{
m_control_mode_flags_ = _control_mode_flags_;
}

/*!
 * @brief This function returns the value of member control_mode_flags_
 * @return Value of member control_mode_flags_
 */
uint32_t estimator_status::control_mode_flags_() const
{
    return m_control_mode_flags_;
}

/*!
 * @brief This function returns a reference to member control_mode_flags_
 * @return Reference to member control_mode_flags_
 */
uint32_t& estimator_status::control_mode_flags_()
{
    return m_control_mode_flags_;
}

/*!
 * @brief This function sets a value in member filter_fault_flags_
 * @param _filter_fault_flags_ New value for member filter_fault_flags_
 */
void estimator_status::filter_fault_flags_(uint16_t _filter_fault_flags_)
{
m_filter_fault_flags_ = _filter_fault_flags_;
}

/*!
 * @brief This function returns the value of member filter_fault_flags_
 * @return Value of member filter_fault_flags_
 */
uint16_t estimator_status::filter_fault_flags_() const
{
    return m_filter_fault_flags_;
}

/*!
 * @brief This function returns a reference to member filter_fault_flags_
 * @return Reference to member filter_fault_flags_
 */
uint16_t& estimator_status::filter_fault_flags_()
{
    return m_filter_fault_flags_;
}

/*!
 * @brief This function sets a value in member pos_horiz_accuracy_
 * @param _pos_horiz_accuracy_ New value for member pos_horiz_accuracy_
 */
void estimator_status::pos_horiz_accuracy_(float _pos_horiz_accuracy_)
{
m_pos_horiz_accuracy_ = _pos_horiz_accuracy_;
}

/*!
 * @brief This function returns the value of member pos_horiz_accuracy_
 * @return Value of member pos_horiz_accuracy_
 */
float estimator_status::pos_horiz_accuracy_() const
{
    return m_pos_horiz_accuracy_;
}

/*!
 * @brief This function returns a reference to member pos_horiz_accuracy_
 * @return Reference to member pos_horiz_accuracy_
 */
float& estimator_status::pos_horiz_accuracy_()
{
    return m_pos_horiz_accuracy_;
}

/*!
 * @brief This function sets a value in member pos_vert_accuracy_
 * @param _pos_vert_accuracy_ New value for member pos_vert_accuracy_
 */
void estimator_status::pos_vert_accuracy_(float _pos_vert_accuracy_)
{
m_pos_vert_accuracy_ = _pos_vert_accuracy_;
}

/*!
 * @brief This function returns the value of member pos_vert_accuracy_
 * @return Value of member pos_vert_accuracy_
 */
float estimator_status::pos_vert_accuracy_() const
{
    return m_pos_vert_accuracy_;
}

/*!
 * @brief This function returns a reference to member pos_vert_accuracy_
 * @return Reference to member pos_vert_accuracy_
 */
float& estimator_status::pos_vert_accuracy_()
{
    return m_pos_vert_accuracy_;
}

/*!
 * @brief This function sets a value in member innovation_check_flags_
 * @param _innovation_check_flags_ New value for member innovation_check_flags_
 */
void estimator_status::innovation_check_flags_(uint16_t _innovation_check_flags_)
{
m_innovation_check_flags_ = _innovation_check_flags_;
}

/*!
 * @brief This function returns the value of member innovation_check_flags_
 * @return Value of member innovation_check_flags_
 */
uint16_t estimator_status::innovation_check_flags_() const
{
    return m_innovation_check_flags_;
}

/*!
 * @brief This function returns a reference to member innovation_check_flags_
 * @return Reference to member innovation_check_flags_
 */
uint16_t& estimator_status::innovation_check_flags_()
{
    return m_innovation_check_flags_;
}

/*!
 * @brief This function sets a value in member mag_test_ratio_
 * @param _mag_test_ratio_ New value for member mag_test_ratio_
 */
void estimator_status::mag_test_ratio_(float _mag_test_ratio_)
{
m_mag_test_ratio_ = _mag_test_ratio_;
}

/*!
 * @brief This function returns the value of member mag_test_ratio_
 * @return Value of member mag_test_ratio_
 */
float estimator_status::mag_test_ratio_() const
{
    return m_mag_test_ratio_;
}

/*!
 * @brief This function returns a reference to member mag_test_ratio_
 * @return Reference to member mag_test_ratio_
 */
float& estimator_status::mag_test_ratio_()
{
    return m_mag_test_ratio_;
}

/*!
 * @brief This function sets a value in member vel_test_ratio_
 * @param _vel_test_ratio_ New value for member vel_test_ratio_
 */
void estimator_status::vel_test_ratio_(float _vel_test_ratio_)
{
m_vel_test_ratio_ = _vel_test_ratio_;
}

/*!
 * @brief This function returns the value of member vel_test_ratio_
 * @return Value of member vel_test_ratio_
 */
float estimator_status::vel_test_ratio_() const
{
    return m_vel_test_ratio_;
}

/*!
 * @brief This function returns a reference to member vel_test_ratio_
 * @return Reference to member vel_test_ratio_
 */
float& estimator_status::vel_test_ratio_()
{
    return m_vel_test_ratio_;
}

/*!
 * @brief This function sets a value in member pos_test_ratio_
 * @param _pos_test_ratio_ New value for member pos_test_ratio_
 */
void estimator_status::pos_test_ratio_(float _pos_test_ratio_)
{
m_pos_test_ratio_ = _pos_test_ratio_;
}

/*!
 * @brief This function returns the value of member pos_test_ratio_
 * @return Value of member pos_test_ratio_
 */
float estimator_status::pos_test_ratio_() const
{
    return m_pos_test_ratio_;
}

/*!
 * @brief This function returns a reference to member pos_test_ratio_
 * @return Reference to member pos_test_ratio_
 */
float& estimator_status::pos_test_ratio_()
{
    return m_pos_test_ratio_;
}

/*!
 * @brief This function sets a value in member hgt_test_ratio_
 * @param _hgt_test_ratio_ New value for member hgt_test_ratio_
 */
void estimator_status::hgt_test_ratio_(float _hgt_test_ratio_)
{
m_hgt_test_ratio_ = _hgt_test_ratio_;
}

/*!
 * @brief This function returns the value of member hgt_test_ratio_
 * @return Value of member hgt_test_ratio_
 */
float estimator_status::hgt_test_ratio_() const
{
    return m_hgt_test_ratio_;
}

/*!
 * @brief This function returns a reference to member hgt_test_ratio_
 * @return Reference to member hgt_test_ratio_
 */
float& estimator_status::hgt_test_ratio_()
{
    return m_hgt_test_ratio_;
}

/*!
 * @brief This function sets a value in member tas_test_ratio_
 * @param _tas_test_ratio_ New value for member tas_test_ratio_
 */
void estimator_status::tas_test_ratio_(float _tas_test_ratio_)
{
m_tas_test_ratio_ = _tas_test_ratio_;
}

/*!
 * @brief This function returns the value of member tas_test_ratio_
 * @return Value of member tas_test_ratio_
 */
float estimator_status::tas_test_ratio_() const
{
    return m_tas_test_ratio_;
}

/*!
 * @brief This function returns a reference to member tas_test_ratio_
 * @return Reference to member tas_test_ratio_
 */
float& estimator_status::tas_test_ratio_()
{
    return m_tas_test_ratio_;
}

/*!
 * @brief This function sets a value in member hagl_test_ratio_
 * @param _hagl_test_ratio_ New value for member hagl_test_ratio_
 */
void estimator_status::hagl_test_ratio_(float _hagl_test_ratio_)
{
m_hagl_test_ratio_ = _hagl_test_ratio_;
}

/*!
 * @brief This function returns the value of member hagl_test_ratio_
 * @return Value of member hagl_test_ratio_
 */
float estimator_status::hagl_test_ratio_() const
{
    return m_hagl_test_ratio_;
}

/*!
 * @brief This function returns a reference to member hagl_test_ratio_
 * @return Reference to member hagl_test_ratio_
 */
float& estimator_status::hagl_test_ratio_()
{
    return m_hagl_test_ratio_;
}

/*!
 * @brief This function sets a value in member beta_test_ratio_
 * @param _beta_test_ratio_ New value for member beta_test_ratio_
 */
void estimator_status::beta_test_ratio_(float _beta_test_ratio_)
{
m_beta_test_ratio_ = _beta_test_ratio_;
}

/*!
 * @brief This function returns the value of member beta_test_ratio_
 * @return Value of member beta_test_ratio_
 */
float estimator_status::beta_test_ratio_() const
{
    return m_beta_test_ratio_;
}

/*!
 * @brief This function returns a reference to member beta_test_ratio_
 * @return Reference to member beta_test_ratio_
 */
float& estimator_status::beta_test_ratio_()
{
    return m_beta_test_ratio_;
}

/*!
 * @brief This function sets a value in member solution_status_flags_
 * @param _solution_status_flags_ New value for member solution_status_flags_
 */
void estimator_status::solution_status_flags_(uint16_t _solution_status_flags_)
{
m_solution_status_flags_ = _solution_status_flags_;
}

/*!
 * @brief This function returns the value of member solution_status_flags_
 * @return Value of member solution_status_flags_
 */
uint16_t estimator_status::solution_status_flags_() const
{
    return m_solution_status_flags_;
}

/*!
 * @brief This function returns a reference to member solution_status_flags_
 * @return Reference to member solution_status_flags_
 */
uint16_t& estimator_status::solution_status_flags_()
{
    return m_solution_status_flags_;
}

/*!
 * @brief This function sets a value in member time_slip_
 * @param _time_slip_ New value for member time_slip_
 */
void estimator_status::time_slip_(float _time_slip_)
{
m_time_slip_ = _time_slip_;
}

/*!
 * @brief This function returns the value of member time_slip_
 * @return Value of member time_slip_
 */
float estimator_status::time_slip_() const
{
    return m_time_slip_;
}

/*!
 * @brief This function returns a reference to member time_slip_
 * @return Reference to member time_slip_
 */
float& estimator_status::time_slip_()
{
    return m_time_slip_;
}

/*!
 * @brief This function sets a value in member pre_flt_fail_innov_heading_
 * @param _pre_flt_fail_innov_heading_ New value for member pre_flt_fail_innov_heading_
 */
void estimator_status::pre_flt_fail_innov_heading_(bool _pre_flt_fail_innov_heading_)
{
m_pre_flt_fail_innov_heading_ = _pre_flt_fail_innov_heading_;
}

/*!
 * @brief This function returns the value of member pre_flt_fail_innov_heading_
 * @return Value of member pre_flt_fail_innov_heading_
 */
bool estimator_status::pre_flt_fail_innov_heading_() const
{
    return m_pre_flt_fail_innov_heading_;
}

/*!
 * @brief This function returns a reference to member pre_flt_fail_innov_heading_
 * @return Reference to member pre_flt_fail_innov_heading_
 */
bool& estimator_status::pre_flt_fail_innov_heading_()
{
    return m_pre_flt_fail_innov_heading_;
}

/*!
 * @brief This function sets a value in member pre_flt_fail_innov_vel_horiz_
 * @param _pre_flt_fail_innov_vel_horiz_ New value for member pre_flt_fail_innov_vel_horiz_
 */
void estimator_status::pre_flt_fail_innov_vel_horiz_(bool _pre_flt_fail_innov_vel_horiz_)
{
m_pre_flt_fail_innov_vel_horiz_ = _pre_flt_fail_innov_vel_horiz_;
}

/*!
 * @brief This function returns the value of member pre_flt_fail_innov_vel_horiz_
 * @return Value of member pre_flt_fail_innov_vel_horiz_
 */
bool estimator_status::pre_flt_fail_innov_vel_horiz_() const
{
    return m_pre_flt_fail_innov_vel_horiz_;
}

/*!
 * @brief This function returns a reference to member pre_flt_fail_innov_vel_horiz_
 * @return Reference to member pre_flt_fail_innov_vel_horiz_
 */
bool& estimator_status::pre_flt_fail_innov_vel_horiz_()
{
    return m_pre_flt_fail_innov_vel_horiz_;
}

/*!
 * @brief This function sets a value in member pre_flt_fail_innov_vel_vert_
 * @param _pre_flt_fail_innov_vel_vert_ New value for member pre_flt_fail_innov_vel_vert_
 */
void estimator_status::pre_flt_fail_innov_vel_vert_(bool _pre_flt_fail_innov_vel_vert_)
{
m_pre_flt_fail_innov_vel_vert_ = _pre_flt_fail_innov_vel_vert_;
}

/*!
 * @brief This function returns the value of member pre_flt_fail_innov_vel_vert_
 * @return Value of member pre_flt_fail_innov_vel_vert_
 */
bool estimator_status::pre_flt_fail_innov_vel_vert_() const
{
    return m_pre_flt_fail_innov_vel_vert_;
}

/*!
 * @brief This function returns a reference to member pre_flt_fail_innov_vel_vert_
 * @return Reference to member pre_flt_fail_innov_vel_vert_
 */
bool& estimator_status::pre_flt_fail_innov_vel_vert_()
{
    return m_pre_flt_fail_innov_vel_vert_;
}

/*!
 * @brief This function sets a value in member pre_flt_fail_innov_height_
 * @param _pre_flt_fail_innov_height_ New value for member pre_flt_fail_innov_height_
 */
void estimator_status::pre_flt_fail_innov_height_(bool _pre_flt_fail_innov_height_)
{
m_pre_flt_fail_innov_height_ = _pre_flt_fail_innov_height_;
}

/*!
 * @brief This function returns the value of member pre_flt_fail_innov_height_
 * @return Value of member pre_flt_fail_innov_height_
 */
bool estimator_status::pre_flt_fail_innov_height_() const
{
    return m_pre_flt_fail_innov_height_;
}

/*!
 * @brief This function returns a reference to member pre_flt_fail_innov_height_
 * @return Reference to member pre_flt_fail_innov_height_
 */
bool& estimator_status::pre_flt_fail_innov_height_()
{
    return m_pre_flt_fail_innov_height_;
}

/*!
 * @brief This function sets a value in member pre_flt_fail_mag_field_disturbed_
 * @param _pre_flt_fail_mag_field_disturbed_ New value for member pre_flt_fail_mag_field_disturbed_
 */
void estimator_status::pre_flt_fail_mag_field_disturbed_(bool _pre_flt_fail_mag_field_disturbed_)
{
m_pre_flt_fail_mag_field_disturbed_ = _pre_flt_fail_mag_field_disturbed_;
}

/*!
 * @brief This function returns the value of member pre_flt_fail_mag_field_disturbed_
 * @return Value of member pre_flt_fail_mag_field_disturbed_
 */
bool estimator_status::pre_flt_fail_mag_field_disturbed_() const
{
    return m_pre_flt_fail_mag_field_disturbed_;
}

/*!
 * @brief This function returns a reference to member pre_flt_fail_mag_field_disturbed_
 * @return Reference to member pre_flt_fail_mag_field_disturbed_
 */
bool& estimator_status::pre_flt_fail_mag_field_disturbed_()
{
    return m_pre_flt_fail_mag_field_disturbed_;
}

/*!
 * @brief This function sets a value in member health_flags_
 * @param _health_flags_ New value for member health_flags_
 */
void estimator_status::health_flags_(uint8_t _health_flags_)
{
m_health_flags_ = _health_flags_;
}

/*!
 * @brief This function returns the value of member health_flags_
 * @return Value of member health_flags_
 */
uint8_t estimator_status::health_flags_() const
{
    return m_health_flags_;
}

/*!
 * @brief This function returns a reference to member health_flags_
 * @return Reference to member health_flags_
 */
uint8_t& estimator_status::health_flags_()
{
    return m_health_flags_;
}

/*!
 * @brief This function sets a value in member timeout_flags_
 * @param _timeout_flags_ New value for member timeout_flags_
 */
void estimator_status::timeout_flags_(uint8_t _timeout_flags_)
{
m_timeout_flags_ = _timeout_flags_;
}

/*!
 * @brief This function returns the value of member timeout_flags_
 * @return Value of member timeout_flags_
 */
uint8_t estimator_status::timeout_flags_() const
{
    return m_timeout_flags_;
}

/*!
 * @brief This function returns a reference to member timeout_flags_
 * @return Reference to member timeout_flags_
 */
uint8_t& estimator_status::timeout_flags_()
{
    return m_timeout_flags_;
}


size_t estimator_status::getKeyMaxCdrSerializedSize(size_t current_alignment)
{
    size_t current_align = current_alignment;































    return current_align;
}

bool estimator_status::isKeyDefined()
{
   return false;
}

void estimator_status::serializeKey(eprosima::fastcdr::Cdr &scdr) const
{
    (void) scdr;
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
}
